package com.candy.control;

import com.candy.bean.UserInfomation;
import com.candy.service.UserInfoService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author donglin
 * @Title:
 * @类名: LoginControler
 * @date 2021/1/12
 */
//@Controller 注解的作用是在springmvc框架下，标注该类是一个控制层（Control层）的类，
//    该类中的方法用于响应客户端发送的请求
@Controller
public class LoginController {
//      使用spring的ioc进行反转控制，获取service层的实例对象
    @Resource
    UserInfoService userInfoService;
/*/**
 * 方法描述 ajax登录
 * @param 传递过来的参数
 * @return 返回结果
 *
*/
    @RequestMapping("doAjaxLogin")
    @ResponseBody

    public String doAjaxLogin(UserInfomation userInfomation){

        System.out.println("已经进入到controller,服务器处理了你的请求");
        System.out.println("登录用户信息："+userInfomation.toString());
//        调用service层进行业务逻辑处理
//        调用登录验证的方法
        List<UserInfomation> userlst= userInfoService.doUserLogin(userInfomation);
//       根据查询结果集判断是否进入登录成功页面
        if(userlst!=null&&userlst.size()>0){
//          返回响应给客户端的视图路径
//        由于配置了springmvc视图路径解析，所以需要剔除视图路径的前缀和后缀，只返回中间部分即可。
//        比如，WEB-INF/pages/logined.jsp 路径，返回logined即可。

//         登录成功，跳转到登录成功页面
            return "ok";
        }else{
//           登录失败，跳转到登录失败页面
            return "ng";
        }





    }


    /*/**
     * 方法描述:用户登录处理
     * @param userName：前台传递过来的用户名，userPwd：前台传递过来的密码
     * @return 给用户展示的视图的路径
     *
     */
//@RequestMapping 注解，用于标识该方法可以影响哪个URI发送过来的客户端请求
//    Control层中的方法的参数需要和前台页面form表单的控件的name属性值保持一致，
//    这样form表单的值就可以通过类型转换映射到方法的参数列表中
//    Control方法的参数也可以使用实体类来接收前台表单发送的值。要求标签控件的name属性和实体类的属性名一一对应
    @RequestMapping("logined")
    public String logined(UserInfomation userInfomation){

        System.out.println("已经进入到controller,服务器处理了你的请求");
        System.out.println("登录用户信息："+userInfomation.toString());
//        调用service层进行业务逻辑处理
//        调用登录验证的方法
        List<UserInfomation> userlst= userInfoService.doUserLogin(userInfomation);
//       根据查询结果集判断是否进入登录成功页面
        if(userlst!=null&&userlst.size()>0){
//          返回响应给客户端的视图路径
//        由于配置了springmvc视图路径解析，所以需要剔除视图路径的前缀和后缀，只返回中间部分即可。
//        比如，WEB-INF/pages/logined.jsp 路径，返回logined即可。

//         登录成功，跳转到登录成功页面
            return "logined";
        }else{
//           登录失败，跳转到登录失败页面
            return "../../index";
        }





    }

    /*/**
     * 方法描述:用户登录处理
     * @param userName：前台传递过来的用户名，userPwd：前台传递过来的密码
     * @return 给用户展示的视图的路径
     *
     */
//@RequestMapping 注解，用于标识该方法可以影响哪个URI发送过来的客户端请求
//    Control层中的方法的参数需要和前台页面form表单的控件的name属性值保持一致，
//    这样form表单的值就可以通过类型转换映射到方法的参数列表中
//    Control方法的参数也可以使用实体类来接收前台表单发送的值。要求标签控件的name属性和实体类的属性名一一对应

    @RequestMapping("logined2")
    public String doLogined(String username,String userpwd){
        System.out.println("服务器处理了你的请求");
        System.out.println("登录的用户名："+username);
        System.out.println("登录的密码"+userpwd);
//        返回响应给客户端的视图路径
//        由于配置了springmvc视图路径解析，所以需要剔除视图路径的前缀和后缀，只返回中间部分即可。
//        比如，WEB-INF/pages/logined.jsp 路径，返回logined即可。
        return "logined";
    }
    /*
     * 方法描述:使用ajax进行用于信息查询
     * @param
     *
    */
    @RequestMapping("getInfoMationByAjax")
    @ResponseBody //表示该方法的返回结果集需要转换为JSON字符串
    public List<UserInfomation> getInfoMationByAjax(UserInfomation userInfomation){
        System.out.println(userInfomation.toString());
//        调用业务逻辑层 service层进行处理操作，返回结果集
        List<UserInfomation> list=userInfoService.dogetInfoMationByAjax(userInfomation);
        return list;
    }







}
